#pragma once
#include <exception>
#include <iostream>
#include <string>

class DataBaseException : public std::exception
{
public:
    DataBaseException() throw()
        :std::exception( "DataBase Exception", 1 )
    {}

    DataBaseException( const char* msg ) throw()
        :std::exception( msg )
    {}

    const std::string& GetAdditionalMessage(){ return m_addExcetpionMessage;}
protected:
    std::string m_addExcetpionMessage;
};

class GeneralDataBaseExceptionHandler
{
public:
    static void HandleDataBaseException( DataBaseException& e, std::ostream& out );   
};